Azure WAF/Script - Create Exclusions for Multiple rules/generate_waf_exclusion.py (26 lines of code) (raw):
import csv
import re
def main(argv):
p = re.compile('ARGS:([^:]*)')
entries = []
with open(argv[1]) as f:
rows = csv.reader(f)
headers = next(rows)
for row in rows:
ruleID = row[headers.index('ruleId_s')]
if ruleID != 949110:
details = row[headers.index('details_data_s')]
m = p.findall(details)
try:
entries.append((m[0], ruleID))
except:
pass
unique_entries = sorted(set(entries))
for argument, rule in unique_entries:
print(f'{argument:<30s} {rule:>20s}')
if __name__ == "__main__":
import sys
if len(sys.argv) == 2:
main(sys.argv)
else:
print(f' Usage: Script <csv_log_file.csv>')